x = int(input())
for jj in range(x):
n = int(input())
ans = [0] * n
t = set(range(1,n+1))
k = 0
for j in range(1,n+1):
i = j
while i in t:
t.remove(i)
ans[k] = i
k += 1
i *= 2
print(2)
print(' '.join([str(p) for p in ans]))
#include<bits/stdc++.h>
using namespace std;
void solve() {
int n;
cin >> n;
cout << 2 << endl;
vector<bool> kt(n + 1, false);
for (int i = 1; i <= n; i++){
if (kt[i]) continue;
int now = i;
while (now <= n){
cout << now << " ";
kt[now] = true;
now *= 2;
}
}
cout << endl;
}
int main() {
int t;
cin >> t;
while (t--) solve();
}
122A - Lucky Division | 1611C - Polycarp Recovers the Permutation |
432A - Choosing Teams | 758A - Holiday Of Equality |
1650C - Weight of the System of Nested Segments | 1097A - Gennady and a Card Game |
248A - Cupboards | 1641A - Great Sequence |
1537A - Arithmetic Array | 1370A - Maximum GCD |
149A - Business trip | 34A - Reconnaissance 2 |
59A - Word | 462B - Appleman and Card Game |
1560C - Infinity Table | 1605C - Dominant Character |
1399A - Remove Smallest | 208A - Dubstep |
1581A - CQXYM Count Permutations | 337A - Puzzles |
495A - Digital Counter | 796A - Buying A House |
67A - Partial Teacher | 116A - Tram |
1472B - Fair Division | 1281C - Cut and Paste |
141A - Amusing Joke | 112A - Petya and Strings |
677A - Vanya and Fence | 1621A - Stable Arrangement of Rooks |